package br.com.android.aluno.comunicacao;

import java.net.ConnectException;
import java.util.Map;

public abstract class Http {

	//utiliza o url connection
	public static final int NORMAL = 1;
	
	//utiliza o jakarta HttpClient
	public static final int JAKARTA = 2;
	
	public static Http getInstance(int tipo){
		switch (tipo) {
			case NORMAL:
				return new HttpNormalImpl();
				
			case JAKARTA:
				return new HttpClientImpl();
				
			default:
				return new HttpNormalImpl();
				
		}
	}
	
	/**
	 * Faz uma requisicao get na url informada e retorna o texto do arquivo
	 * 
	 * @param url
	 * @return
	 */
	public abstract String downloadArquivo(String url);
	
	/**
	 * Faz uma requisicao get na url informada e retorna os bytes da imagem
	 * 
	 * @param url
	 * @return
	 */
	public abstract byte[] downloadImagem(String url);
	
	/**
	 * Faz uma requisicao post na url informada enviando os parametros via HashMap
	 * 
	 * @param url
	 * @return
	 * @throws ConnectException 
	 */
	public abstract String doPost(String url, Map<String, String> map) throws ConnectException;

	/**
	 * Faz uma requisicao post na url informada enviando os parametros via String
	 * 
	 * @param url
	 * @return
	 * @throws ConnectException 
	 */
	public abstract String doPost(String url, String params) throws ConnectException;
}
